// Copyright 2018 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------
// Modification history:
// feature: listener code decoupling
// ------------------------------------------------------------------

#ifndef INCLUDE_EDDS_RTPS_WRITER_WRITERDISCOVERYINFO_H_
#define INCLUDE_EDDS_RTPS_WRITER_WRITERDISCOVERYINFO_H_

#include <ertps/ertps_dll.h>
#include <edds/rtps/builtin/data/WriterProxyData.h>
#include <deps/core/status/BaseStatus.hpp>
#include <history/BaseDiscoveryInfo.h>

namespace evbs {
namespace ertps {
namespace rtps {

/**
 * Class WriterDiscoveryInfo with discovery information of the writer.
 * @ingroup RTPS_MODULE
 */
class WriterDiscoveryInfo : public vbs::BaseWriterDiscoveryInfo {
 public:
    using WRITER_DISCOVERY_STATUS = evbs::edds::dds::WRITER_DISCOVERY_STATUS;

    WriterDiscoveryInfo(const WriterProxyData& data) : status(WRITER_DISCOVERY_STATUS::DISCOVERED_WRITER), info(data) {}

    virtual ~WriterDiscoveryInfo() {}

    //! Status
    WRITER_DISCOVERY_STATUS status;

    //! Participant discovery info
    const WriterProxyData info;
};

}  // namespace rtps
}  // namespace ertps
}  // namespace evbs

#endif  // INCLUDE_EDDS_RTPS_WRITER_WRITERDISCOVERYINFO_H_
